import random


# 冒泡排序(Bubble Sort)
# 列表每两个相邻的数，如果前面比后面大，则交换这两个数
# 一趟排序完成后，则无序区减少一个数，有序区增加一个数
# 优化点 如果一趟排序中没有任何交换认为列表已经排序好
# 时间复杂度O(n^2) 平方阶

def bubble_sort(li):
    for y in range(len(li) - 1):
        is_change = False
        for x in range(len(li) - y - 1):
            if li[x] > li[x + 1]:
                is_change = True
                temp = li[x]
                li[x] = li[x + 1]
                li[x + 1] = temp
        if not is_change:
            break
        print(li)


list1 = []
for x in range(10):
    list1.append(random.randint(1, 100))
print(list1)
bubble_sort(list1)
